home *** CD-ROM | disk | FTP | other *** search
/ SPACE 1 / SPACE - Library 1 - Volume 1.iso / games / 251 / readme < prev    next >
Text File  |  1988-11-06  |  33KB  |  830 lines

  1. Here are all the "readme" files for various versions of Hack. I
  2. concatenated them all to avoid a proliferation of files. There are
  3. a lot of references to source code, makefiles, etc.; obviously these
  4. are not applicable to a binary-only distribution.
  5.  
  6. Eric Smith
  7.  
  8. ---------------------------------------------------------------------------
  9.                 NetHack V2.3 README
  10.  
  11.     This file contains information on the 2.3 release of NetHack.  For
  12. information on previous releases, see the README and README.OLD files.  For
  13. a detailed history of the game, see the README.ORIG file, which contains
  14. three separate readme files, dating back to the original release of the game
  15. (then named "hack") by Jay Fenlason.
  16.  
  17.             HOW TO INSTALL THIS RELEASE
  18.  
  19.     To install this release, unpack all of the shar kits.  You will find
  20. you have a bunch of completely new files, a second bunch of files with a
  21. ".new" suffix (these are all files which have been released fully, since the
  22. patch file to update them would have been larger than the file itself), a set
  23. of update patches - context diffs, and finally a shell script to pull every-
  24. thing together.
  25.  
  26.     Next ***BACK EVERYTHING UP***.  I don't want to receive irate mail
  27. about missing files due to some finger error.
  28.  
  29.     Read "Update.sh".  This script will be used once - and only once -
  30. to perform the copies and cat's required to make the update.   Once it has
  31. been run, all of your ".new" files will be moved onto their corresponding
  32. ".c" and ".h" files, and the originals will be backed up with a ".orig"
  33. suffix.  All of the files which were shipped in parts will be concatenated
  34. into one file.  And finally Update.sh will be removed. 
  35.  
  36.     Next run patch(1) with the file Update.2.3 as it's stdin.  This will
  37. patch the remaining files up to 2.3e standard.  Gods help you if you've done
  38. any patching on your own.  It probably won't work in that case.  Best bet is
  39. to start with a virgin 2.2 release.
  40.  
  41.     Finally, copy "Makefile.<whatever>" to "Makefile", modify "config.h"
  42. to suit and run "make".  Install it as you wish.
  43.  
  44.  
  45.                 Release Discription
  46.  
  47.     This release of the game contains a large number of bug fixes, as
  48. well as several new features.  There has been a large amount of play-testing
  49. done on this release.  For a detailed list of bug fixes, and additions look
  50. at the file "Fixes.2.3".  I cannot guarantee that every modification done has
  51. been included, but I have done my best to chronicle the changes and fixes
  52. made there.  Here are the high points:
  53.  
  54.   1)    New flags in "config.h":
  55.  
  56.     SAC        Soldiers & barracks code
  57.     SHIRT        Hawaiian shirt code
  58.     THEOLOGY    Smarter gods & sacrifices
  59.     STOOGES        Three wild and crazy guys
  60.     SINKS        Kitchen Sinks
  61.  
  62.     SCORE_ON_BOTL    Score (not exactly # of exp) on the bottom line.
  63.  
  64.     In addition, in an MSDOS enviornment:
  65.  
  66.     TERMLIB        enable use of termcap file c:\etc\termcap
  67.             or .\termcap.cnf for MSDOS
  68.  
  69.     Of the above, I haven't tested TERMLIB.  If you find bugs in these,
  70. send me the reports.
  71.  
  72.   2)    New objects:
  73.  
  74.     Hawaiian shirts (sort of armor - especially for tourists).
  75.  
  76.     Kitchen Sinks - for the dropping of rings, of course...
  77.  
  78.     Wand of Lightning
  79.  
  80.     Ring of Shock Resistance (to balance above)
  81.  
  82.     A named weapon (dagger or short sword) "Sting" a la Tolkien.
  83.  
  84.     Lamps and Magic Lamps
  85.  
  86.     A Badge to identify you as an "Officer".
  87.  
  88.   3)    New Files:
  89.  
  90.     A new makefile for the ATT 3B2
  91.  
  92.     A "Spoilers" manual in mm format and tables for the manual.
  93.  
  94.     The long-awaited documentation on nansi.sys - nansi.doc.
  95.  
  96.   4)    Major game changes:
  97.  
  98.     - Shop generation has been cleaned up.  There are now up to four
  99.     different types of object inside.  There has also been modifications
  100.     to room generation to make things cleaner.
  101.  
  102.     - A new type of room, the barracks (a lair for soldiers) has been
  103.     added.  In addition, the soldier has been made just a little less
  104.     deadly to compensate for the large numbers present.
  105.  
  106.     - A new type of trap, the landmine, (which will be renamed to con-
  107.     form with a fantasy setting in the future) has been added.
  108.  
  109.     - A change to shopkeepers has them getting angry more easily if you
  110.     are wearing a badge, and have robbed them.
  111.  
  112.     - The "dragon" has been split up into several sub-types.  They now
  113.     have all sorts of breath weapons - NOTE: a slight bug - eating any
  114.     of the dead dragon types still gives you intrinsic fire resistance.
  115.  
  116.     - A new wand, and compensating ring have been added (Lightning).
  117.  
  118.     - The "Giant Eel" has been replaced with an "Electric Eel".
  119.  
  120.     - The wand zapping code has been re-written (mostly in buzz()) so
  121.     that support for new zap effects will be easier in the future.
  122.  
  123.     - Chameleon shape changes are now dependant on the level for more
  124.     challenge.
  125.  
  126.     - An optional "logfile" has been added for game debugging.
  127.  
  128.     - Some interesting changes to the "pray" code have been added.
  129.  
  130.     - The restmonchn() code has been merged between Unix and MS-DOS.
  131.     This results in a fair sized reduction in size and complexity of
  132.     that particular module.  Please send me any bug reports as I have
  133.     only tested it on the Unix side.
  134.  
  135.     - The colour <--> gemstone type code has been fixed so that the
  136.     colour of an unknown stone now approximates the gem type.
  137.  
  138.     - For those who like a little fun, three STOOGES have been added
  139.     (optionally) to the game.  They will show up and fight with each
  140.     other, producing more of a disturbance than any serious trouble.
  141.  
  142.     - Lamps have been added.  When applied, they will light a room.
  143.  
  144.     - Magic lamps have a djinn inside.  Glowing potions may too.
  145.  
  146.     - A new monster, the Gremlin, can multiply in water, and will
  147.     potentially steal your hard won inate attributes.
  148.  
  149.   5)    Minor game changes:
  150.  
  151.     - The fountain code has been modified to allow coins to fall into or
  152.     be recovered from a fountain.
  153.  
  154.     - In wizard mode, the wizard player can now map the level, list all
  155.     of his/her attributes, and can do a detect for all traps and doors.
  156.  
  157.     - When wishing, you are no longer limited by the x3/+3 rule.  However,
  158.     you can't be sure that a "greedy" wish will produce the desired
  159.     results, the object might be cursed.
  160.  
  161.     - You can now optionally print your score on the bottom line.  The
  162.     score printed is close to what would show up on your tombstone.
  163.  
  164.     - A fix to allow multiple machine play via NFS on a shared playground
  165.     has been made.  This won't affect us single machine players.
  166.  
  167.     - The time between prayers is now random.
  168.  
  169.     - Wizard and Medusa levels are now dependant on the MAXLEVEL param.
  170.  
  171.     - The spell list is now displayed in the corner.
  172.  
  173.   6)    Future additions:
  174.  
  175.     See the "Hackers.doc" file.  I am going to make the next release
  176. a major modification of the code (3.0).  It will include as many alternate
  177. OSs supported as I can get patches for.  It will also be constrained towards
  178. a "fantasy" approach to the game.
  179.  
  180. PLEASE NOTE MY NEW UUCP ADDRESS BELOW!!!
  181.                         Mike Stephenson
  182.  
  183. ps:    Sorry this one took so long.  I'm going to fix up an alternative
  184.     to handle releases in the future.
  185.  
  186. Mail:    Genamation Inc.        Phone:    (416) 475-9434
  187.     351 Steelcase Rd. W
  188.     Markham, Ontario.    UUCP:    uunet!{mnetor,utzoo}!genat!genpyr!mike
  189.     Canada   L3R 3W1
  190.  
  191. ---------------------------------------------------------------------------
  192.                   NetHack V2.2 README
  193.     This file contains information on the 2.2 release of NetHack.  For
  194. information on previous releases, see the README.OLD file.  For a detailed
  195. history of the game, see the README.ORIG file, which contains three separate
  196. readme files, dating back to the original release of the game (then named
  197. hack) by Jay Fenlason.
  198.  
  199.     This release of the game contains a large number of bug fixes, as
  200. well as several new features.  There has been a large amount of play-testing
  201. done on this release, as it is to be a complete release (approximately 1Mb)
  202. of source and uuencoded auxilary files.  For a detailed list of bug fixes,
  203. and additions look at the file "Fixes.2.2".  I cannot guarantee that every
  204. modification done has been included, but I have done my best to chronicle the
  205. changes and fixes made there.  Here are the high points:
  206.  
  207.   1)    New flags in "config.h" (some of these were included in 1.4f):
  208.  
  209.     COM_COMPL    Command line completion by John S. Bien
  210.     GRAPHICS    Funky screen character support (Eric S. Raymond)
  211.     HACKOPTIONS    Support DGK-style HACKOPTIONS processing (ESR)
  212.     RPH        Various hacks by Richard P. Hughey
  213.     KJSMODS        Various changes made by Kevin Sweet
  214.     BVH        Additions by Bruce Holloway
  215.  
  216.     In addition, in an MSDOS enviornment, when GRAPHICS is defined:
  217.  
  218.     MSDOSCOLOR    Colour highlighting of monsters, etc.
  219.  
  220.     Of the above, I haven't tested HACKOPTIONS and MSDOSCOLOR.  If you
  221.     find bugs in these, send me the reports.
  222.  
  223.   2)    New objects:
  224.  
  225.     blindfold - allows you to avoid the gaze of a Floating Eye and to
  226.             use your telepathy on command if you have it.
  227.  
  228.     mirror - scares monsters if you use it on them (and other uses).
  229.  
  230.     ring of polymorph - (usually cursed) forces random polymorphs.
  231.  
  232.     ring of polymorph control - prevents system shock and allows choice of
  233.                     creature to polymorph into.
  234.  
  235.   3)    New Files:
  236.  
  237.     - A new set of documentation, the "Guidebook to the Mazes of Menace"
  238.     has been supplied by Eric S. Raymond.  The guidebook is written for
  239.     nroff using the "mn" macro set supplied with Bnews 2.11 or greater.
  240.     Since not everyone has these macros, I have run the guidebook through
  241.     nroff, and supplied it in flat ascii format as well.  [Moderator's
  242.     note: because of past problems, I ran the formatted version
  243.     through "col -b" before passing it on to remove ^H's, etc.  -br]
  244.  
  245.     - A copy of "HACK.CNF" which has been renamed "NetHack.cnf" was
  246.     supplied by Steve Creps. The file decl.c has been updated to reflect
  247.     this change.
  248.  
  249.     - A new "Makefile" for the AT&T Unix machines has been added.
  250.  
  251.     - I was hoping to get documentation on "NANSI.SYS" as well, but got
  252.     no responses to the mail I sent the author, direct and via Bill
  253.     Randle at tekred.  As per usual, I will gladly publish any relevant
  254.     documentation I get.
  255.  
  256.   4)    Major game changes:
  257.  
  258.     - Shop generation has been significantly changed.  A new structure
  259.     has been introduced which allows shops (except the "general" type)
  260.     to have up to three different types of object inside.  There is also
  261.     a new "distribution pattern" parameter which tells the generation
  262.     code how to lay out the shop (this is preliminary to the addition of
  263.     two new types of shop, the temple and barracks - more on this later).
  264.  
  265.     - Shopkeepers will now tell you how much they expect for each object
  266.     you pick up.  This gives you the ability to haggle with the merchant
  267.     in question by dropping and picking up objects until you are more or
  268.     less satisfied with the price.  I have re-written "getprice()" in
  269.     shk.c in an attempt to make sure that you cannot actually sell any
  270.     particular object for more than the shopkeeper will charge for it.
  271.  
  272.     - Another change to shopkeepers has them potentially getting angry if
  273.     you stay beside them after not paying your bill.  Each they time they
  274.     ask you to pay up, there is a chance they will decide they don't like
  275.     people who don't pay...
  276.  
  277.     - A new monster, the hydra, has been added (as you have probably seen
  278.     on the net).  I haven't had much chance to test out this feature of
  279.     the game.  Mirrors have also been added, and seem to work quite well.
  280.  
  281.     - Changes have been made to the object ocurrence chances in objects.h,
  282.     so that the relatively rare tools, etc. have at least a 1% chance of
  283.     showing up.
  284.  
  285.     - Throwing and zapping code has been modified so that there is a
  286.     chance that said can be done through a doorway.  Bolts can still
  287.     bounce however...
  288.  
  289.     - The infamous and dreaded makemon() bug has been eliminated.  In
  290.     addition to this, "r"ats and "K"obolds have been added back into the
  291.     game.  "K"ops no longer leave treasure (just what they were carrying,
  292.     plus maybe a club or whistle).
  293.  
  294.     - Two new "super"swords have been added.  They are the katana named
  295.     "Snickersnee" which is +5 on damage (due to sharpness), and the long
  296.     sword "Excalibur" which is +rnd(10) to hit, +5 on damage, and has a
  297.     couple of other features I won't go into right now.  The only way
  298.     for a character to get "Excalibur" is as a gift from someone.  You
  299.     cannot write the word "Excalibur" on things for some reason...
  300.  
  301.     - There have been two additions to disallow infinite wand charges.
  302.     First of all, wands with less than zero charges will automatically
  303.     turn to dust (thanks to Kevin Sweet).  Next, a wand of cancellation
  304.     will set the number of charges in the wand to -1, which will make it
  305.     forever useless, (thanks to Ron Wessels).
  306.  
  307.   5)    Minor game changes:
  308.  
  309.     - The fountain code has been tightened slightly so you can no longer
  310.     dip objects into a fountain or drink from one while you are floating
  311.     in mid-air due to levitation.
  312.  
  313.     - Teleporting to hell via a teleportation trap will no longer occur
  314.     if the character does not have fire resistance.  I found this just
  315.     too arbitrary a way to die (and so did several other people who com-
  316.     plained about it).
  317.  
  318.     - A new trap, the "polymorph" trap has been added by Richard Hughey.
  319.     It's inclusion is dependant on having "KAA" defined.
  320.  
  321.     - In wizard mode, the wizard player has infinite wishes, and the
  322.     ability to instantly identify everything (s)he is carrying. The wizard
  323.     player is also no longer limited by the standard multiple / bonus res-
  324.     trictions on objects wished for.
  325.  
  326.     - Random number generation has been changed around to make it (I hope)
  327.     more unpredictable.
  328.  
  329.     - A large number of typos have been fixed, and all of the British
  330.     spellings converted to American.  I would like to see a shell script
  331.     to allow conversion back (or something like that) in the future.
  332.  
  333.     - I have done a "make depend" for the makefiles to reflect a slight
  334.     restructuring in the order of inclusion of header files.
  335.  
  336.   6)    Future additions:
  337.  
  338.     - Steve Creps is working on "barracks" and "soldier" code which is
  339.     now ready for addition.  I have added the "soldier" side into the
  340.     game, but haven't really tested it.  Steve will be adding the
  341.     "barracks" section in and sending me the resulting patches.  There
  342.     will be a minor (read patch) release as soon as he can get the code
  343.     integrated into this release and sent up here to me.
  344.  
  345.     - There are also several other new room projects in the works which
  346.     should be able to be included in that minor release, along with any
  347.     bug reports that are made in the interim.
  348.  
  349.                         Mike Stephenson
  350.  
  351. Mail:    Genamation Inc.        Phone:    (416) 475-9434
  352.     351 Steelcase Rd. W
  353.     Markham, Ontario.    UUCP:    uunet!{mnetor, utzoo}!genat!mike
  354.     Canada   L3R 3W1
  355. ----------------------------------------------------------------------------
  356.                   NetHack V1.0 README
  357.  
  358.     This file contains information on NetHack, it's history, features,
  359. and installation proceedures.
  360.  
  361.     For a detailed history of the game, see the README.ORIG file, which
  362. contains three separate readme files, dating back to the original release of
  363. the game (then named hack) by Jay Fenlason.
  364.  
  365.      History:
  366.     ==========
  367.  
  368.     NetHack is the product of literally dozens of people's work.  I have
  369. a list of *some* of those who made major additions to the game which appears
  370. below:
  371.  
  372. Jay Fenlason    wrote the original release of "Hack", with help    from
  373.         Kenny Woodland, Mike Thome and Jon Payne.
  374.  
  375. Andries Brouwer    did a major re-write on the program and    publshed (at least)
  376.         two versions to the Usenet.
  377.  
  378. Don Kneller    ported the 1.0.3 version of Hack to the PC, creating PC-Hack.
  379.  
  380.     The following folks didn't actually re-write the game, or port it to
  381. a new machine, but have made significant contributions to the playability of
  382. the game:
  383.  
  384. ins_akaa@jhunix.UUCP (Ken Arromdee)
  385.  
  386.     New character classes.
  387.     New weapons code.
  388.     Armor weights implemented.
  389.     New tools code.
  390.     Polymorph self code.
  391.     additional bug fixes.
  392.  
  393. srt@ucla-cs (Scott R. Turner)
  394.  
  395.     Rockmole & Keystone Kops code.
  396.     Squeeky Board & Magic traps.
  397.     Fountain code.
  398.     more bug fixes.
  399.  
  400. gil@cornell.UUCP (Gil Neiger)
  401.  
  402.     Magic Marker code.
  403.     Fountain code enhancements.
  404.     Enhancements to dozens of routines.
  405.     more bug fixes (esp. in hack.zap.c)
  406.  
  407. ericb@hplsla.UUCP (Eric Backus)
  408.  
  409.     #dip mods to fountain code.
  410.     yet more bug fixes.
  411.  
  412.     As for myself, I have added new character classes and traps, the
  413. Throne Room, spellbooks and spellcasting, implemented code for praying and
  414. made some enhancements to the endgame.
  415.  
  416.     NetHack is an integrated version of two major "flavors" of Hack,
  417. Unix and PC Hack.  It is designed so that you should be able to compile it
  418. in either one of the target enviornments.  The filenames of all modules have
  419. been modified to correspond with the PC-Hack standards implemented by Don
  420. Kneller.
  421.  
  422.      config.h
  423.     ==========
  424.  
  425.     As distributed, it is set up to compile on my machine (a Pyramid 98xe
  426. in the Berkeley universe).  Due to the large number of "features" in NetHack,
  427. the config file (config.h) is used to select the target options.
  428.  
  429.     Here is a list of the currently supported options:
  430.  
  431. SPELLS        Spell casting code
  432. PRAYERS        Prayer code
  433. KAA        Various changes made by Ken Arromdee
  434. MARKER        Magic marker modification
  435. NEWCLASS    New classes, traps, and Throne Rooms.
  436. SAFE_ATTACK     Safe attack code
  437. PROBING        Wand of probing code
  438. DIAGS        Diagnostics after death/quit
  439. SORTING        Sorted inventory
  440. DGK        Additional features by Don Kneller (PC specific)
  441. DGKMOD        Additional features by Don Kneller (Non-PC specific)
  442. REDO         support for redoing last command
  443. HARD        Enhanced wizard code among other things.
  444. NEWTRAPS    Magic and Squeeky board traps
  445. FREEHAND    Cannot use Pick-axe without wielding it.
  446. SPIDERS        Spiders and webs
  447. FOUNTAINS    Fountain code
  448. KOPS        Keystone Kops
  449. ROCKMOLE    Rockmoles
  450.  
  451. Status Line options:
  452.  
  453. GOLD_ON_BOTL
  454. EXP_ON_BOTL
  455.  
  456.     In a number of cases, code written for one specific version of Hack
  457. or another was separated out and given it's own designation (eg. REDO has
  458. been moved out of DGKMOD which was moved out of DGK from PC-HACK).
  459.  
  460.      Some New Features:
  461.     ====================
  462.  
  463.     Some of the old code (eg. KOPS) has been enhanced to allow for more
  464. functionality.  Here's a couple of examples - you can find out the rest for
  465. yourself in the traditional Hack style :-)
  466.  
  467.     Kops now throw cream pies (thank/blame KAA for the suggestion).
  468.  
  469.     The wizard may not stay dead!!!
  470.  
  471.     There are a couple of new types of demons.
  472.  
  473.     Demons may not be aggressive.
  474.  
  475.     There are lots more of these little gems, with sufficient hints in
  476. various fortune cookies to give away enough clues.
  477.  
  478.      Makefiles:
  479.     ============
  480.  
  481.     The Unix "Makefile" has been enhanced to make installation cleaner
  482. and also to allow "initialization" of the play directories (WARNING: this
  483. will destroy old score files!!!).  The PC Makefile hasn't been upgraded in
  484. this respect.
  485.  
  486.     The program "makedefs" has been modified in order to allow limited
  487. use of "#ifdef/#else/#endif" sets in objects.h.  Makedefs will only generate
  488. one #define for any number of ocurrences of a given object name string.  In
  489. addition, "makedefs" also generates alternate defines for "DEAD_xxxxx" in
  490. those cases where a monster has been given an alternate identity.
  491.  
  492.     Makedefs has also been modified in order that it may be used to
  493. initialize the following variable def files:
  494.  
  495.     objects.h    -o option,  see above.
  496.     trap.h        -t option,  trap type defines.
  497.     date.h        -d option,  date string.
  498.     data        -D option,  optional monster names.
  499.     rumors        -r option,  optional rumor addition.
  500.  
  501.     To compile the program on any 4.n or Sys V system, you should only
  502. need to copy "Makefile.unix" to "Makefile", set up "Makefile" and "config.h",
  503. then type "make".  On a Xenix system, use "Makefile.xenix" and similarly set
  504. up "Makefile" and "config.h", with "STUPID" defined.  At this point in time,
  505. I can get the Xenix version to build, but it will immediately dump core on
  506. invocation.
  507.  
  508.      Known Problems:
  509.     =================
  510.  
  511.     There are several known problem areas and deficiencies in the code
  512. which I haven't yet addressed, prefering to get the really fatal bugs out of
  513. the way.  Here's a short list of things someone out there might want to work
  514. on (and it is by no means complete):
  515.  
  516.     - The WALKIES code is really crude.  Fido get's mnexto()'d you when
  517.       he gets out of the effective leash range.  I haven't yet been able
  518.       to integrate leashed movement into dogmove().  You might just want
  519.       to comment out the #define in config.h.
  520.  
  521.     - ROCKMOLES have some problems with screen updating.  I didn't make
  522.       any changes to the code I received, and have noticed some distinct
  523.       problems with walls not being set to "door" until the rockmole
  524.       moves off the cell.
  525.  
  526.     - There are some problems in the item selection code, the usual effect
  527.       of which is to leave the cursor sitting at some arbitrary point on
  528.       the screen instead of returning it to the upper left hand corner or
  529.       onto the "@".  This doesn't affect the screen updating, so I have
  530.       ignored it up to now.
  531.  
  532.     - REDO may not be completely implemented.  I am still working on it
  533.       here but would appreciate any help anyone out there might want to
  534.       give.
  535.  
  536.     I fully expect that about one week's worth of play on the net will
  537. result in a couple dozen bugs being discovered.  I would like to keep a lid
  538. on the potential explosion of different sub-versions of the game, so if you
  539. possibly can, please send me the bug reports, instead of releasing them to
  540. the general public.  I will apply them to my code here, and will generate an
  541. update to the release when the mass of fixes (or mass * severity factor) gets
  542. large enough.  This way, we should be able to keep most of the net up to a
  543. certain level  -  this may turn out to be the first truely net maintained
  544. game.  Unless circumstances change, I will continue to consolidate fixes and
  545. modifications to the game, and will continue to post to the net through
  546. comp.sources.games, with notices of new patches/fixes/mods going out through
  547. rec.games.hack.
  548.  
  549.      Making Bug Reports:
  550.     =====================
  551.  
  552.     To send bug reports, just E-Mail me at any one of the following net
  553. addresses (in order of connectivity):
  554.  
  555.     seismo!mnetor!genat!mike
  556.     utzoo!mnetor!genat!mike
  557.     pyramid!pyrnj!genat!mike
  558.     utzoo!utgpu!genat!mike
  559.  
  560.     When you send in a bug report, please keep your code fragments as
  561. small as possible.  Remember that each site along the way is paying for the
  562. transmission of the code.
  563.  
  564.                         Mike Stephenson
  565.  
  566. Mail:    Genamation Inc.        Phone:    (416) 475-9434
  567.     351 Steelcase Rd. W
  568.     Markham, Ontario.    UUCP:    {seismo, utzoo}!mnetor!genat!mike
  569.     Canada   L3R 3W1
  570. -------------------------------------------------------------------------
  571.  
  572.     This file consists of all previous README files for the game, as
  573. released with the original version (Jay F.), first usenet version (Andries B.),
  574. and PC-Hack (Don K.).  This way "README" is current for this version.
  575.  
  576.                         Mike Stephenson
  577.  
  578. -- Original README file --------------------------------------------------------
  579.  
  580. This is export hack, my first semester programming project.
  581.  
  582. To set it up for your system, you will have to do the following:
  583.     1: create a hack uid, to own the top ten list, etc.
  584.     2: create a hack directory "/usr/lib/game/hack" is the default.
  585.     2.5: make the directory 700 mode.    /* sav files go in there...*/
  586.     3: modify hack.main.c to use the new directory.
  587.     4: modify hack.main.c so it uses the new hack gid.  Gid accounts can
  588. go into magic mode without the password, can get cores with ^G, etc.
  589. (make sure gid isn't checked anywhere else...)
  590.     5: recompile hack.
  591.     6: put it in games after making it set-uid hack.
  592.     8: fix the bugs I undobtedly left in it.
  593.     9: tell me what you think of it.
  594.  
  595.     Hack uses the UCB file /etc/termcap to get your terminal escape codes.
  596. If you don't use it, you will have to make extensive changes to hack.pri.c
  597.  
  598. If you find any bugs (That you think I don't know about), or have any
  599. awesome new changes (Like a better save (One that works!)), or have ANY
  600. questions, write me
  601.         Jay Fenlason
  602.         29 East St.
  603.         Sudbury Mass.
  604.             01776
  605.  
  606. or call me at (617) 443-5036.  Since I have both a modem and a teen-age
  607. sister, Good Luck.
  608.  
  609.  
  610. Hack is split (roughly) into several source files that do different things.
  611. I have tried to fit all the procedures having to do with a certain segment
  612. of the game into a single file, but the job is not the best in the world.
  613. The rough splits are:
  614.  
  615. hack.c        General random stuff and things I never got around to moving.
  616. hack.main.c    main() and other random procedures, also the lock file stuff.
  617. hack.mon.c    Monsters, moving, attacking, etc.
  618. hack.do.c    drink, eat, read, wield, save, etc.
  619. hack.do1.c    zap, wear, remove, etc...
  620. hack.pri.c    stuff having to do with the screen, most of the terminal
  621.         independant stuff is in here.
  622. hack.lev.c    temp files and calling of mklev.
  623.  
  624. Because of the peculiar restraints on our system, I make mklev (create
  625. a level) a separate procedure execd by hack when needed.  The source for
  626. mklev is (Naturaly) mklev.c.  You may want to put mklev back into hack.
  627. Good luck.
  628.  
  629. Most of hack was written by me, with help from
  630.         Kenny Woodland (KW)    (general random things including
  631.             the original BUZZ())
  632.         Mike Thome    (MT)    (The original chamelian)
  633.     and    Jon Payne    (JP)    (The original lock file kludge and
  634.             the massive CURS())
  635.  
  636. This entire program would not have been possible without the SFSU Logo
  637. Workshop.  I am eternally grateful to all of our students (Especially K.L.),
  638. without whom I would never have seen Rogue.  I am especially grateful to
  639. Mike Clancy, without whose generous help I would never have gotten to play
  640. ROGUE.
  641.  
  642. -- Hack 1.0.x README file ------------------------------------------------------
  643.  
  644. Hack is a display oriented dungeons & dragons - like game.
  645. Both display and command structure resemble rogue.
  646. (For a game with the same structure but entirely different display -
  647. a real cave instead of dull rectangles - try Quest)
  648.  
  649. Hack was originally written by Jay Fenlason (at lincolnsudbury:
  650.  29 East St., Sudbury Mass., 01776) with help from
  651.  Kenny Woodland, Mike Thome and Jon Payne.
  652. Basically it was an implementation of Rogue, however, with 52+ instead of 26
  653.  monster types.
  654. The current version is more than thrice as large (with such new features as
  655.  the dog, the long worms, the shops, etc.) and almost entirely rewritten
  656.  (only the display routines are the original ones - I must rewrite these
  657.  too one day; especially when you are blind strange things still happen).
  658.  
  659. Files for hack:
  660.     hack        The actual game
  661.     record        Top 100 list (just start with an empty file)
  662.     news        Tells about recent changes in hack, or bugs found ...
  663.             (Just start with no news file.)
  664.     data        Auxiliary file used by hack to give you the names
  665.             and sometimes some more information on the
  666.             objects and monsters.
  667.     help        Introductory information (no doubt outdated).
  668.     hh        Compactified version of help.
  669.     perm        An empty file used for locking purposes.
  670.     rumors        Texts for fortune cookies.
  671.             (Some of these contain information on the game,
  672.             others are just plain stupid. Additional rumors
  673.             are appreciated.)
  674.     hack.sh        A shell script.
  675.             (We have hack.sh in /usr/games/hack and
  676.             hack in /usr/games/lib/hackdir/hack and all the other
  677.             hack stuff in /usr/games/lib/hackdir - perhaps this
  678.             will make the script clear.
  679.             There is no need for you to use it.)
  680.     READ_ME        This file.
  681.     Original_READ_ME Jay Fenlason's READ_ME
  682.  
  683. System files used:
  684.     /etc/termcap    Used in conjunction with the environment variable
  685.             $TERM.
  686.     /bin/cat
  687.     /usr/ucb/more
  688.     /bin/sh        Used when $SHELL is undefined.
  689.  
  690. How to install hack:
  691. 0. Compile the sources. Perhaps you should first look at the file config.h
  692.    and define BSD if you are on a BSDtype system,
  693.    define STUPID if your C-compiler chokes on complicated expressions.
  694.    Make sure schar and uchar represent signed and unsigned types.
  695.    If your C compiler doesnt allow initialization of bit fields
  696.    change Bitfield. When config.h looks reasonable, say 'make'.
  697.    (Perhaps you have to change TERMLIB in the makefile.)
  698. 1. If it didnt exist already, introduce a loginname `play' .
  699. 2. The program  hack  resides in a directory so that it is executable
  700.    for everybody and is suid play:
  701.     ---s--s--x  1 play    206848 Apr  3 00:17 hack
  702.    Perhaps you wish to restrict playing to certain hours, or have games
  703.    running under nice; in that case you might write a program play.c
  704.    such that the program play is suid play and executable for everybody
  705.    while all the games in /usr/games are readable or executable for
  706.    play only; all the program play does is asking for the name of a game,
  707.    checking that time-of-day and system load do not forbid playing,
  708.    and then executing the game. Thus:
  709.     -r-sr-sr-x  1 play     13312 May 24 12:52 play
  710.     ---x------  1 play    206848 Apr  3 00:17 hack
  711.    If you are worried about security you might let play do
  712.    chroot("/usr/games") so that no player can get access to the rest
  713.    of the system via shell escapes and the likes.
  714.    If you #define SECURE in config.h then hack will not setuid(getuid())
  715.    before executing a chdir(). Hack will always do setuid(getuid()) with
  716.    a fork. If you do not define UNIX then hack will not fork.
  717. 3. The rest of the stuff belonging to hack sits in a subdirectory hackdir
  718.    (on our system /usr/games/lib/hackdir) with modes
  719.     drwx------  3 play    1024 Aug  9 09:03 hackdir
  720.    Here all the temporary files will be created (with names like xlock.17
  721.    or user.5).
  722. 4. If you are not really short on file space, creating a subdirectory
  723.    hackdir/save (modes again drwx------) will enable users to save their
  724.    unfinished games.
  725.  
  726. The program hack is called
  727. $ hack [-d hackdir] [maxnrofplayers]
  728. (for playing) or
  729. $ hack [-d hackdir] -s [listofusers | limit | all]
  730. (for seeing part of the scorelist).
  731. The shell file hack (in this kit called hack.sh) takes care of
  732. calling hack with the right arguments.
  733.  
  734. Send complaints, bug reports, suggestions for improvements to
  735. mcvax!aeb - in real life Andries Brouwer.
  736.  
  737. -- PC Hack 3.51 README file ----------------------------------------------------
  738.  
  739.     Welcome to the sources for PC HACK (version 3.51).
  740.  
  741. Introduction
  742. ------------
  743. This is a version of the public domain program HACK 1.03 (copyright
  744. Stichting Mathematisch Centrum, Amsterdam, 1984, 1985.) implemented
  745. under MSDOS with the Microsoft(tm) C v3.0 compiler.
  746.  
  747. You may copy this version of PC HACK and make any changes you want to
  748. it.  You may give it away, but you may not sell it.
  749.  
  750.  
  751. The sources are in ARC format in HACK351S.ARC.  The commands:
  752.  
  753.     C> arc51 e hack351s makefile make.*
  754.     C> arc51 e hack351s *.h
  755.     C> arc51 e hack351s *.c
  756.  
  757. will unpack the files.
  758.  
  759. With a hard disk system, you should be able to type `make' and the sources
  760. will start to be compiled.  This takes a long time.  A floppy disk system
  761. does not really have enough storage.
  762.  
  763.  
  764. Compiling
  765. ---------
  766. The LARGE compiler model is used.  To add WIZARD mode, add a -DWIZARD
  767. to the MAKEFILE, or a #define WIZARD to the CONFIG.H file.
  768.  
  769. The MAKEFILE included with PC HACK 3.51 sources is for my version of MAKE.
  770. It is very similar to UNIX(tm) `make'.  See MAKE.DOC for details.
  771.  
  772. To compile the sources by hand the command for each `filename.c' file is:
  773.     msc -AL -DREGBUG -DLINT_ARGS -Ot -Gs filename.c;
  774.  
  775.  
  776. Linking
  777. -------
  778. I used the Microsoft 8086 Linker version 3.01
  779.  
  780. To link the *.obj files by hand, the command is:
  781.     link @linkfile
  782.  
  783. Where the contents of the linkfile (not supplied) should be:
  784.  
  785. decl.obj apply.obj bones.obj cmd.obj do.obj +
  786. do_name.obj do_wear.obj dog.obj eat.obj +
  787. end.obj engrave.obj fight.obj hack.obj +
  788. invent.obj ioctl.obj lev.obj main.obj +
  789. makemon.obj mhitu.obj mklev.obj mkmaze.obj +
  790. mkobj.obj mkshop.obj mon.obj monst.obj +
  791. o_init.obj objnam.obj options.obj pager.obj +
  792. potion.obj pri.obj read.obj rip.obj +
  793. rumors.obj save.obj search.obj shk.obj +
  794. shknam.obj steal.obj termcap.obj +
  795. timeout.obj topl.obj track.obj trap.obj +
  796. tty.obj unix.obj u_init.obj vault.obj +
  797. wield.obj wizard.obj worm.obj worn.obj +
  798. zap.obj version.obj rnd.obj alloc.obj +
  799. msdos.obj 
  800. hack /NOIG /STACK:4000; 
  801.  
  802.  
  803. Differences from UNIX HACK
  804. --------------------------
  805. Changes that were introduced to port UNIX HACK to the MSDOS environment
  806. are surrounded with `#ifdef MSDOS', `#endif' directives.
  807.  
  808. Other changes I have made are surrounded by `#ifdef DGK', `#endif'
  809. directives.  It should be possible to compile these sources without
  810. any of my changes by removing the `#define DGK' line from CONFIG.H.
  811.  
  812. Also, functions I have added are mainly restricted to the file msdos.c,
  813. although some of them are in other places (ie. wizard.c)
  814.  
  815.  
  816. Finally
  817. -------
  818. If you have any questions, contact me at one of:
  819.  
  820.     Don Kneller
  821.     UUCP:    ...ucbvax!ucsfcgl!kneller
  822.     ARPA:    kneller@ucsf-cgl.ARPA
  823.     BITNET:    kneller@ucsfcgl.BITNET
  824.     USMAIL:    D. G. Kneller
  825.         2 Panoramic Way #204
  826.         Berkeley, CA 94704
  827.  
  828. --------------------------------------------------------------------------------
  829. END OF FILE
  830.